{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# 8 向量数据库\n",
    "存储和搜索非结构化数据的最常见方法之一是嵌入它并存储生成的嵌入向量，\n",
    "\n",
    "然后在查询时嵌入非结构化查询并检索与嵌入查询“最相似”的嵌入向量。\n",
    "\n",
    "矢量存储负责存储嵌入数据并为您执行矢量搜索。\n",
    "\n",
    "<img src=\"https://python.langchain.com/assets/images/vector_stores-9dc1ecb68c4cb446df110764c9cc07e0.jpg\" alt=\"图片\" width=\"900\" height=\"500\">"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "有许多很棒的矢量存储选项，这里有一些是免费的、开源的，并且完全在本地计算机上运行。\n",
    "\n",
    "比如chrome，faiss，lance\n"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    " 我们先体验一下chrome"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: chromadb in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (0.4.5)\n",
      "Requirement already satisfied: pulsar-client>=3.1.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (3.2.0)\n",
      "Requirement already satisfied: typing-extensions>=4.5.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (4.7.1)\n",
      "Requirement already satisfied: importlib-resources in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (6.0.0)\n",
      "Requirement already satisfied: fastapi<0.100.0,>=0.95.2 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (0.99.1)\n",
      "Requirement already satisfied: tokenizers>=0.13.2 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (0.13.3)\n",
      "Requirement already satisfied: chroma-hnswlib==0.7.2 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (0.7.2)\n",
      "Requirement already satisfied: overrides>=7.3.1 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (7.3.1)\n",
      "Requirement already satisfied: tqdm>=4.65.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (4.65.0)\n",
      "Requirement already satisfied: pydantic<2.0,>=1.9 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (1.10.12)\n",
      "Requirement already satisfied: pypika>=0.48.9 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (0.48.9)\n",
      "Requirement already satisfied: numpy>=1.21.6 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (1.25.2)\n",
      "Requirement already satisfied: requests>=2.28 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (2.31.0)\n",
      "Requirement already satisfied: posthog>=2.4.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (3.0.1)\n",
      "Requirement already satisfied: onnxruntime>=1.14.1 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (1.15.1)\n",
      "Requirement already satisfied: uvicorn[standard]>=0.18.3 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from chromadb) (0.23.2)\n",
      "Requirement already satisfied: starlette<0.28.0,>=0.27.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from fastapi<0.100.0,>=0.95.2->chromadb) (0.27.0)\n",
      "Requirement already satisfied: flatbuffers in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from onnxruntime>=1.14.1->chromadb) (23.5.26)\n",
      "Requirement already satisfied: coloredlogs in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from onnxruntime>=1.14.1->chromadb) (15.0.1)\n",
      "Requirement already satisfied: sympy in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from onnxruntime>=1.14.1->chromadb) (1.12)\n",
      "Requirement already satisfied: packaging in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from onnxruntime>=1.14.1->chromadb) (23.1)\n",
      "Requirement already satisfied: protobuf in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from onnxruntime>=1.14.1->chromadb) (4.23.4)\n",
      "Requirement already satisfied: six>=1.5 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from posthog>=2.4.0->chromadb) (1.16.0)\n",
      "Requirement already satisfied: monotonic>=1.5 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from posthog>=2.4.0->chromadb) (1.6)\n",
      "Requirement already satisfied: python-dateutil>2.1 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from posthog>=2.4.0->chromadb) (2.8.2)\n",
      "Requirement already satisfied: backoff>=1.10.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from posthog>=2.4.0->chromadb) (2.2.1)\n",
      "Requirement already satisfied: certifi in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from pulsar-client>=3.1.0->chromadb) (2023.7.22)\n",
      "Requirement already satisfied: idna<4,>=2.5 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from requests>=2.28->chromadb) (3.4)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from requests>=2.28->chromadb) (2.0.4)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from requests>=2.28->chromadb) (3.2.0)\n",
      "Requirement already satisfied: colorama in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from tqdm>=4.65.0->chromadb) (0.4.6)\n",
      "Requirement already satisfied: click>=7.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from uvicorn[standard]>=0.18.3->chromadb) (8.1.6)\n",
      "Requirement already satisfied: h11>=0.8 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from uvicorn[standard]>=0.18.3->chromadb) (0.14.0)\n",
      "Requirement already satisfied: httptools>=0.5.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from uvicorn[standard]>=0.18.3->chromadb) (0.6.0)\n",
      "Requirement already satisfied: websockets>=10.4 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from uvicorn[standard]>=0.18.3->chromadb) (11.0.3)\n",
      "Requirement already satisfied: pyyaml>=5.1 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from uvicorn[standard]>=0.18.3->chromadb) (6.0.1)\n",
      "Requirement already satisfied: python-dotenv>=0.13 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from uvicorn[standard]>=0.18.3->chromadb) (1.0.0)\n",
      "Requirement already satisfied: watchfiles>=0.13 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from uvicorn[standard]>=0.18.3->chromadb) (0.19.0)\n",
      "Requirement already satisfied: anyio<5,>=3.4.0 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from starlette<0.28.0,>=0.27.0->fastapi<0.100.0,>=0.95.2->chromadb) (3.7.1)\n",
      "Requirement already satisfied: humanfriendly>=9.1 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from coloredlogs->onnxruntime>=1.14.1->chromadb) (10.0)\n",
      "Requirement already satisfied: mpmath>=0.19 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from sympy->onnxruntime>=1.14.1->chromadb) (1.3.0)\n",
      "Requirement already satisfied: sniffio>=1.1 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi<0.100.0,>=0.95.2->chromadb) (1.3.0)\n",
      "Requirement already satisfied: exceptiongroup in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi<0.100.0,>=0.95.2->chromadb) (1.1.2)\n",
      "Requirement already satisfied: pyreadline3 in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (from humanfriendly>=9.1->coloredlogs->onnxruntime>=1.14.1->chromadb) (3.4.1)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "[notice] A new release of pip available: 22.3.1 -> 23.2.1\n",
      "[notice] To update, run: python.exe -m pip install --upgrade pip\n"
     ]
    }
   ],
   "source": [
    "! pip install chromadb"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:36:43.645940900Z",
     "start_time": "2023-10-04T08:36:36.776592100Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "data": {
      "text/plain": "['客户：唉你好。',\n '客服：您好，建行1917为您服务，嗯。',\n '客户：唉，你好，我这边有我那个在咱银行那边有一张信用卡，然后上一次做了一个协商处理，现在也没有回复，我，想问一下我那个工单情况怎么样了？',\n '客服：呃你说那个信用卡的一个工单，我这边给您转接信用卡坐席那边可以吗？',\n '客户：唉，好的，谢谢你。',\n '客服：好不客气的，稍等一下。',\n '客户：嗯。',\n '客户：行好的。',\n '客服：如果转接不成功的话请重新拨打，选择3号键信用卡业务，我现在给您转接，您不要挂机，稍等一下。',\n '客户：唉，好的谢谢。',\n '客服：您好，您好，请问有什么可以帮您您好。',\n '客户：唉，你好，我这边前两天给咱。',\n '客户：那个下了工单，我想问一下信用卡账单那个信用卡上信用卡工单情况了。',\n '客服：信用卡工单情况之前反馈的信用卡的相关问题是吗？',\n '客户：嗯知道。',\n '客服：嗯，卡号或身份证号能告诉我一下吗？查一下记录。',\n '客户：941951。',\n '客服：嗯。',\n '客户：1115。',\n '客服：嗯。',\n '客户：1110。',\n '客服：嗯。',\n '客户：2217。',\n '客服：给您查一下，稍等啊。',\n '客户：嗯。',\n '客户：唉。',\n '客服：不好意思没有查到记录啊，我确认一下那个身份证号941911。',\n '客户：941951。',\n '客户：对二八。',\n '客服：二八，噢，不好意思，嗯，111511102217。',\n '客户：啊，对是的。',\n '客服：嗯。',\n '客服：呃是一个协商还款的问题。',\n '客户：对，是的，是的是的。',\n '客服：嗯嗯，现在的话是看一下啊。',\n '客服：有接到回复了吗？因为我看到4月6号显示有跟您做过联系。',\n '客户：然后他说怎么调取两年内的这个记录，然后因为我的逾期表长了五年了，然后所以他也他要他说要给我。',\n '客户：这几天给我回复了，一直没再回复啊。',\n '客服：一直没再回复明白了，这样吧，我们这边的话再给您就是催一下，让他们尽快给您回一下好吗？',\n '客户：行好的你再帮我下工单，然后让他给我回个电话啊。',\n '客服：唉，行行行，没问题，我给您去催单，嗯。',\n '客户：嗯。']"
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 构建数据集\n",
    "text = \"\"\"客户：唉你好。\\n客服：您好，建行1917为您服务，嗯。\\n客户：唉，你好，我这边有我那个在咱银行那边有一张信用卡，然后上一次做了一个协商处理，现在也没有回复，我，想问一下我那个工单情况怎么样了？\\n客服：呃你说那个信用卡的一个工单，我这边给您转接信用卡坐席那边可以吗？\\n客户：唉，好的，谢谢你。\\n客服：好不客气的，稍等一下。\\n客户：嗯。\\n客户：行好的。\\n客服：如果转接不成功的话请重新拨打，选择3号键信用卡业务，我现在给您转接，您不要挂机，稍等一下。\\n客户：唉，好的谢谢。\\n客服：您好，您好，请问有什么可以帮您您好。\\n客户：唉，你好，我这边前两天给咱。\\n客户：那个下了工单，我想问一下信用卡账单那个信用卡上信用卡工单情况了。\\n客服：信用卡工单情况之前反馈的信用卡的相关问题是吗？\\n客户：嗯知道。\\n客服：嗯，卡号或身份证号能告诉我一下吗？查一下记录。\\n客户：941951。\\n客服：嗯。\\n客户：1115。\\n客服：嗯。\\n客户：1110。\\n客服：嗯。\\n客户：2217。\\n客服：给您查一下，稍等啊。\\n客户：嗯。\\n客户：唉。\\n客服：不好意思没有查到记录啊，我确认一下那个身份证号941911。\\n客户：941951。\\n客户：对二八。\\n客服：二八，噢，不好意思，嗯，111511102217。\\n客户：啊，对是的。\\n客服：嗯。\\n客服：呃是一个协商还款的问题。\\n客户：对，是的，是的是的。\\n客服：嗯嗯，现在的话是看一下啊。\\n客服：有接到回复了吗？因为我看到4月6号显示有跟您做过联系。\\n客户：然后他说怎么调取两年内的这个记录，然后因为我的逾期表长了五年了，然后所以他也他要他说要给我。\\n客户：这几天给我回复了，一直没再回复啊。\\n客服：一直没再回复明白了，这样吧，我们这边的话再给您就是催一下，让他们尽快给您回一下好吗？\\n客户：行好的你再帮我下工单，然后让他给我回个电话啊。\\n客服：唉，行行行，没问题，我给您去催单，嗯。\\n客户：嗯。\"\"\"\n",
    "list_text = text.split('\\n')\n",
    "\n",
    "list_text"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:38:25.836141Z",
     "start_time": "2023-10-04T08:38:25.783646200Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "outputs": [],
   "source": [
    "from langchain.embeddings.openai import OpenAIEmbeddings\n",
    "from langchain.vectorstores import Chroma\n",
    "# 使用向量数据库chroma，利用openai的embadding对文本进行向量化\n",
    "db = Chroma.from_texts(list_text, OpenAIEmbeddings())"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:39:54.347743800Z",
     "start_time": "2023-10-04T08:39:22.247948600Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "客服：嗯，卡号或身份证号能告诉我一下吗？查一下记录。\n"
     ]
    }
   ],
   "source": [
    "# 相似性搜索\n",
    "query = \"客户的身份证号是多少\"\n",
    "docs = db.similarity_search(query)\n",
    "print(docs[0].page_content)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:41:01.602620700Z",
     "start_time": "2023-10-04T08:41:00.580168900Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "embedding_vector：[-0.0006600301256486075, -0.003293202962316684, 0.013228393176677565, -0.05032903353152666, -0.04157495211258094, 0.009740655568422981, -0.04037994984795809, -0.014437290773153123, -0.041936230740751326, -0.013436824085790682, 0.0304586531028049, 0.018327994867781233, -0.02708207814937197, 0.0023153161892148916, -0.0017681859841154706, 0.03240400701276397, 0.00449862626016781, -0.036517036417035395, 0.05541473989077762, -0.0021798364708203698, -0.010678592331125732, 0.029041325528538733, -0.039240528910746066, 0.015104268564728084, -0.024080679018607155, 0.0011394204715507678, 0.005391404125671772, -0.005471302283824838, 0.021301603334840633, -0.04404832863294289, 0.0177165984036171, -0.01699403928463131, -0.028680046900368347, -0.02092642937481754, -0.035155290170180056, -0.001811609012570494, 0.007843937182593401, -0.006711464376968988, 0.02506724944279438, 0.013652202660830151, 0.01935625128752658, 0.014437290773153123, -0.0014841993244685727, 0.02502556344723626, -0.005707523856643369, 0.010866180242459788, -0.01849473885001372, -0.010629958669641256, -0.027193240804193625, 0.03832343328317736, -0.009233474093154153, -0.004206823825599707, -0.0012019495813032635, -0.010213097782737534, 0.00556162240652869, -0.023302536709565516, 0.010046353800505049, 0.016340956824909058, -0.015020896573611843, -0.03020853712945617, 0.008573443967505544, 0.001861979706951871, -0.03198714333189272, 5.8078308562146695e-05, -0.01814735555369604, -0.007614663275701225, -0.001719552206215682, 0.015785141688155754, 0.02207974564388227, 0.012054234841156286, 0.02160730249824521, 0.01868927349595162, -0.0019748796275010573, -0.02041230023362236, 0.046549492091720206, -0.026720799521201585, -0.009879608886950053, -0.017883342385849585, -0.009129259104258849, 0.011296936461216217, 0.0003888532832610811, -0.042603206669681266, -0.015451652792368271, 0.025470215929167907, 0.039740760857443526, 0.037489713372014934, -0.017605435748795445, 0.0151320592284335, -0.02310800206362762, -0.013944004629737002, 0.026401205025944303, 0.005242028842593916, 0.0052350811766675625, -0.003981023751670706, 0.008580391633431899, 0.0057665790170173745, -0.0021624670731738584, 0.004606315547687546, -0.00588468980342664, -0.026929229498992194, 0.006596827423522899, -0.00782309418481434, -0.018522529513719133, -0.015868513679271997, -0.008142687748749114, -0.009587805986720693, -0.012644787376218847, 0.0006218178466383493, 0.03390470657814638, -0.02535905327434625, -0.017883342385849585, 0.036239129779981255, 0.017938923713260415, -0.018216832212959576, -0.005391404125671772, 0.002230207048786433, -0.01306164919444508, -0.0027530205395589306, -0.005954166462690175, -0.006499560100553949, 0.0021902579697099, 0.02727661279530987, 0.015215431219549741, -0.021912999799004768, 0.02923586017447663, 0.030152955802045342, -0.004724426334096811, -0.015007001241759134, 0.016340956824909058, 0.011637373022930051, 0.022871781422131598, -0.011526210368108395, -0.0018046613466441404, 0.014006534554396693, -0.024136260346017985, 0.012790689291994782, 0.014159383204776471, 0.01902276332306161, -0.023649921868528215, -0.03143133005778444, 0.007086639268314589, 0.03218167797783062, -0.0043596729416407395, 0.024650389487213167, 0.015243221883255156, 0.0031803031581828117, -0.008538705637873777, 0.010671644665199377, -0.019231193300852215, -0.03496075552424216, 0.0056033084020868104, 0.011408100047360384, 0.027874113927621295, 0.04599367881761192, 0.0038698608640184216, 0.022982944076953254, 0.008483124310462949, 0.0037795409741451977, -0.012797636957921134, -0.00758687261199581, -0.031875980677071064, 0.011408100047360384, 0.0017925029312730217, -0.024567015633451903, 0.008510914974168362, 0.037767620009069074, -0.008615129963063666, -0.010018562205477123, 0.017494273093973788, 0.01632706149305635, 0.003510318221007115, 0.01390231863417888, 0.013026910864813312, 0.003237621402075228, 0.026345623698533473, 0.011324727124921632, 0.008163530746528175, -0.013944004629737002, -0.015326594805693908, -0.026401205025944303, -0.01399958688847034, 0.017772179731027928, 0.019008867991208902, 0.029180278847065803, -0.01700793461648402, 0.028165917759173164, 0.002374371582419524, 0.00025771571055138807, 0.009448852668193623, -0.028930162873717077, 0.012068130173008992, 0.009532224659309864, 0.02401120235934362, -0.00948359099782539, -0.5833832814339931, -0.01695235328907319, -0.003218515320777756, -0.009511381661530805, 0.0030500339564024275, 0.010352051101264604, 0.015312699473841201, 0.011408100047360384, -0.03129237673925736, -0.06564173393669037, 0.00938632367485644, -0.005412247123450833, -0.010171411787179412, -0.011289988795289864, -0.020328928242506115, -0.034988546187947576, 0.012158449830051588, 0.02665132286193805, 0.001452934711384668, 0.0007069269870668078, -0.007670245068773307, -0.0063397633185865625, -0.0023187900221780682, 0.04432623526999703, 0.018314099535928528, -0.004648001543245667, 0.005839529974905342, -0.023455387222590315, -0.02488661012870919, -0.0027512833902467145, -0.0014286178806424306, -0.0032949398787982726, 0.002438637725068922, -0.02045398622918048, 0.04257541600597586, -0.0133742950924535, 0.021829627807888524, 0.03362679994109224, -0.010803651249122605, 0.015479443456073686, -0.017730493735469807, -0.008802717874397722, 0.026734694853054294, -0.010178359453105766, 0.022010267121973716, 0.010053301466431401, 0.01652159613899425, -0.0017082622490853575, 0.014353918782036882, 0.03412703188778969, -0.025581378583989563, -0.007649402070994247, 0.0021833103037835464, -0.00991434721658182, 0.011686007615737036, -0.004338829478200424, 0.0010456266322990534, -0.04010204321090395, 0.0005788290473037229, -0.019564683127962206, -0.0044534664316465125, 0.02156561650268709, 0.0051204442232214735, -0.008198269076159942, 0.00542614245530354, 0.001544991634154794, -0.025039458779088964, 0.01267257897124677, 0.03073656160250406, 0.0034860011574342504, 0.010039406134578694, 0.02909690685594956, 0.0017021829249844842, -0.021398872520454602, 0.0039011253606870125, 0.02567864590695851, 0.027540625963156325, -0.014673512345971654, 0.008066263423559225, 0.02616498438444828, -0.014770779668940604, -0.007183907056944794, 0.0005158656502231732, 0.00958085832079434, -0.03059760828397699, 0.004613263213613899, -0.013985691556617632, -0.017397003908359816, 0.01781386572658605, 0.0002583670542319837, 0.026929229498992194, -0.0054191947893771865, 0.021009801365933785, -0.011338623388096849, -0.004137346700674916, 0.024233527668986933, -0.022468814935758072, -0.03409924122408428, -0.01713299260315838, -0.005995852458248296, -0.025567483252136855, -0.009879608886950053, 0.010977342897281445, 0.02385835184631882, 0.03582226609911, 0.013638306397654934, -0.017702703071764393, -0.014124644875144704, 0.01912003064603056, -0.03621133911627584, -0.006905999488568142, 0.005825634177391379, 0.007183907056944794, -0.01536828080125203, -0.015743455692597632, -0.020440090897327772, 0.012255717153020538, 0.0360168007450479, 0.00621817869921412, -5.148343560622301e-05, 0.01670223545307944, 0.009004200186261975, 0.031875980677071064, -0.019703636446489276, 0.028013069108793386, 0.007830041850740694, -0.009573910654867986, -0.01104682048786749, 0.02665132286193805, -0.02551190192472603, 0.01097039523135509, -0.036794943054089535, 0.03757308536313118, -0.03107004956696903, 0.0046375800443561365, 0.0030882463518279992, 0.027346091317218425, -0.004741795498912695, 0.0010942605266141558, 0.014534558096122073, -0.01853642484557184, -0.03232063502164773, -0.002313579272733303, -0.029041325528538733, -0.011012082158235723, -0.01800840037252395, -0.0017820813159681777, -0.0006404897570230813, -0.008316379396907953, -0.009824027559539225, -0.014270545859598128, -0.00999077154177171, 0.009942137880287234, 0.004741795498912695, -0.004741795498912695, 6.166070971935841e-05, 0.01718857393056921, -0.01978700843760552, -0.007097060767204119, -0.0017013144667436901, -0.02098201070222837, 0.02458091096530461, -0.018175146217401454, -0.00391154709240717, -0.008872194533661257, -0.00572836685442243, 0.02551190192472603, 0.0046167370465770765, -0.01779997039473334, -0.013443771751717036, -0.01087312790838614, 5.9923789599791464e-05, 0.0015536762165627358, -0.010136673457547644, -0.00819132141023359, 0.012881008949037378, -0.02981946597493535, 0.01814735555369604, -0.009511381661530805, -0.030375281111688655, 0.003967128419817999, -0.005537305575786452, -0.01431223278647876, -0.0045437865543503635, 0.013360399760600793, 0.02698481082640302, -0.009282107754638627, 0.02895795353742249, -0.019092239982325145, 0.04110250710429886, -0.008219112073939003, 0.022927362749542424, -0.021065382693344615, 0.03707284969114368, 0.014520662764269367, 0.013749469983799101, 0.02399730702749091, 0.006534298430185717, -0.0015015686056997705, 0.024928296124267307, 0.02745725397204008, 0.02007881226915739, 0.009900451884729114, -0.005179499849256734, 0.004880749283101021, -0.006582932091670192, -0.005846477640831695, -0.0028537619283216845, 0.04268657866079751, 0.01613252684711845, 0.006652408750933727, -0.011880542261674936, -0.007482657623100507, -0.013165864183340384, -0.014381709445742295, 0.00528024100518886, -0.0034860011574342504, -0.0012314772779055798, 0.003935863923149408, 0.0024143206614960573, 0.006694095212153104, -0.00319246157355393, 0.03482179848042505, -0.006179966536619176, 0.0075382389505113355, -0.0177165984036171, 0.007295069711766451, 0.010796703583196251, 0.01546554812422098, -0.006245969362919534, -0.024650389487213167, -0.02007881226915739, 0.013124178187782262, 0.013186707181119445, 0.01761933108064815, 0.017438691766562958, 0.03579447543540459, -0.03943506355668397, 0.01298522486925519, 0.0005966324994476608, -0.016827295302398827, 0.0126517350421452, 0.01996764775169071, -0.031042258903263616, 0.001430354797124019, -0.0087610318788396, 0.011630425357003697, 0.015104268564728084, 0.0025602221116107367, 0.0444651885885241, -0.0016266269416200757, 0.020662416206971086, -0.006947685484126263, 0.003154249178128358, 0.018911600668239954, 0.008726293549207833, -0.0064092399778500975, 0.022107536307587685, 0.0016839453019278062, 0.027623997954272568, 0.03020853712945617, 0.022024164316471445, 0.015048687237317256, -0.004515995424983694, 0.0312090028854961, -0.0009830975225465577, -0.014617930087238315, -0.019522997132404084, 0.01799450504067124, -0.027443358640187376, 0.03362679994109224, 0.00695115931708944, -0.0038559655321657145, 0.009935190214360881, -0.006725359708821694, -0.0016448645646767537, 0.004338829478200424, -0.016632758793815906, 0.010817546580975312, -0.003942811589075761, -0.025525797256578733, -0.0073089650436191575, -0.007135272929799064, 0.037156221682259925, 0.013950952295663354, -0.022302070953525585, -0.018994972659356194, 0.004734847832986342, -0.01699403928463131, 0.0049606474412540865, -0.0074896052890268605, -0.0021346764094684442, -0.007267279048061037, -0.008969461856630207, 0.00901114785218833, -0.007517395952732275, 0.02502556344723626, -0.018119564889990628, -0.03440493852484384, 0.016340956824909058, 0.00511349655729512, -0.016313166161203645, 0.002277104026619947, -0.046549492091720206, 0.021982476458268303, 0.0015206746869972428, -0.027165450140488212, -0.008684606622327201, 0.016160317510823866, 0.005242028842593916, 0.007614663275701225, -0.013895370968252526, -0.024497538974188368, 0.00654124609611207, 0.007725826396184136, 0.015354385469399323, -0.019842589765016346, -0.007885623178151523, 0.020634625543265672, -0.01560450144274805, -0.001172422001116261, -0.0030726138706630764, -0.029069116192244147, -0.00891388052921938, 0.02401120235934362, 0.02289957208583701, 0.006443978307481866, 0.005912480467132054, 0.010470162353335125, -0.0010360735916503173, -0.03782320133647991, -0.032014933995598134, 0.011748536609074219, 0.006145227741326153, 0.0013165864183340384, -0.015118163896580791, 0.021774046480477694, 0.002014828939408218, 0.0162297941700874, 0.020523462888444016, 0.015910199674830115, 0.016410433484172593, -0.013089439858150495, -0.013749469983799101, -0.03168144603113316, -0.0007464419534382574, 0.006155649240215683, 0.04171390543110801, -0.016410433484172593, -0.005488671448640722, 0.03107004956696903, 0.026151089052595573, 0.007725826396184136, -0.012054234841156286, -0.0072881220458400975, -0.007684140400626015, -0.012811532289773843, 0.003383522852189908, -0.0008571707283854584, 0.004338829478200424, -0.020301137578800702, 0.000836761901519138, 0.007677192734699662, 0.02156561650268709, 0.04599367881761192, 0.01335345209467444, -0.0003638850215267627, -0.012999120201107899, 0.03234842568535314, -0.0056067822350499875, 0.007034531773866938, 0.003637113356993695, 0.01404127288402846, -0.008809665540324075, 0.007121377597946357, 0.01155400103181381, -0.040991344449477204, -0.01714688793501109, -0.00278602195270911, 0.013318713765042671, -0.02698481082640302, -0.016285375497498228, -0.011366414051802264, -0.024608701629010025, -0.018175146217401454, -0.020495672224738602, 0.012797636957921134, -0.01366609799268286, -0.00825385040357077, -0.011804117936485047, -0.025192307429468742, -0.022607768254285142, -0.03346005223356971, -0.0018411367091728103, 0.010824494246901666, 0.002464691472292748, -0.0008558680410242671, -0.012290455482652306, -0.0011854488747281738, 0.016007466997799067, 0.03534982481611796, 0.01935625128752658, 0.0007164800859232008, 0.027485044635745498, 0.010921761569870616, -0.0337379625959139, 0.012311298480431367, -0.010046353800505049, -0.020662416206971086, 0.023927828505582355, -0.03165365536742775, -0.018911600668239954, -0.013110282855929556, 0.016410433484172593, 0.0030795615365894298, -0.0008384988180007263, 0.01566008370148139, -0.010470162353335125, 0.008684606622327201, -0.010748069921711777, -0.0020773579327453997, 0.0023292115210675987, -0.018272413540370406, 0.006308498356256716, 0.002944081818194908, -0.030097374474634512, 0.022969048745100546, -0.007781407723594965, 0.012908799612742793, -0.0008172215328936116, -0.0021537824907659165, -0.026470681685207838, -0.01973142711019469, 0.011797170270558693, 0.0033661536873740242, -0.039101575592218996, 0.022746723435457233, -0.004797376826323523, 0.01556281544718993, 0.0027234927265413003, -0.019467415804993258, 0.0018967181529989524, 0.004238088322268297, -0.032959820286872256, 0.02406678368675445, -0.020092707601010097, 0.029402606019354138, 0.03068098027509323, -0.010122778125694938, 0.004807798325213054, -0.009351584413902162, -0.015910199674830115, -0.0074896052890268605, 0.006117437077620739, 0.014979210578053721, -0.005773526682943728, 9.026563306104539e-05, 0.007267279048061037, -0.028513301055490842, -0.011435890711065799, 0.004595894048798016, 0.02074579006073235, -0.0027634420384484606, -0.0031907246570723417, -0.006704516711042634, 0.0030083479608443062, 0.007003267277198346, 0.007941204505562351, 0.024025097691196328, -0.02073189472887964, -0.007656349736920601, -0.001425144047679254, -0.0015944938702953768, 0.03712843101855451, -0.022121431639440393, 0.010275626776074714, -0.0026227513377785464, -0.007034531773866938, -0.008538705637873777, -0.016743921448637563, -0.02981946597493535, 0.0002970135623626391, 0.017744389067322515, 0.013290922170014747, 0.023469282554443024, 0.023636026536675507, 0.02050956755659131, 0.00852481030602107, -0.016354852156761763, 0.00420334999263653, -0.022802304762868063, 0.01945352047314055, -0.022885676753984303, -0.00155454467480353, 0.022065850312029567, 0.018758752017860175, -0.00044052669410747777, 0.007267279048061037, -0.012783741626068428, 0.007044953272756468, -0.013415981088011621, 0.009636439648205168, -0.003994919083523413, -0.04668844913553732, 0.014520662764269367, -0.022788409431015354, -0.02962493132899745, 0.019092239982325145, -0.040018667494497666, -0.003293202962316684, -0.0025845389423529742, -0.009837922891391931, 0.0009379375776099459, -0.006575984425743838, 0.0076077156097748705, -0.02598434507036309, 0.01732752724909628, -0.022024164316471445, -0.003291466045835096, 0.00907367777684802, -0.003296676795279861, 0.00833027472876066, 0.014840256328204139, 0.02073189472887964, 0.026720799521201585, 0.029069116192244147, 0.024428062314924833, -0.01830020420407582, -0.009421062004488208, 0.0019505626803435062, -0.008879142199587612, -0.024622596960862733, -0.004495152427204634, -0.009080625442774375, 0.01800840037252395, -0.016730026116784855, -0.00452641738953448, -0.011859699263895875, -0.02299683940880596, -0.0007056242997056165, -0.03301540161428308, 0.024956086787972724, -0.005627625232829048, -0.0023761084989011127, 0.010053301466431401, 0.019133925977883267, 0.02440027165121942, -0.020759685392585058, 0.046716239799242734, 0.04896728728467132, -0.00046853455968457586, -0.03409924122408428, -0.04932856963813175, 0.0004980621980792354, -0.02112096402075544, 0.03198714333189272, 0.05613730087240843, -0.006332815652660209, -0.023663817200380924, 0.037434128319314065, 0.002372634665937936, -0.005676259359974778, -0.022649454249843264, 0.0016943668008173366, 0.014576244091680195, 0.03151470204890068, 0.01407601121366023, -0.018744856686007467, -0.008510914974168362, 0.022121431639440393, 0.005321927000746982, -0.022163117634998515, -0.04229750936892171, -0.02808254576805692, 0.0005093522134172168, -0.008649868292695434, -0.02526178408873228, 0.014979210578053721, 0.006426609142665982, -0.022663349581695972, 0.009969928543992649, -0.008517862640094716, -0.006183440369582353, -0.004227666823378767, -0.011727693611295158, 0.010074144464210462, 0.003426945997060245, -0.002938871068750143, -0.008906932863293025, 0.014979210578053721, -0.01399958688847034, 0.02453922496974649, 0.0031247215979413557, 0.03926831957445148, 0.0010456266322990534, -0.02162119783009792, 0.006478716637113633, -0.006919894820420849, 0.006509981599443479, 0.03251516966758563, 0.0002198291179333418, -0.02516451676576333, 0.010122778125694938, -0.022927362749542424, 0.002735651141912419, -0.010074144464210462, 0.01085228491060708, 0.010928709235796969, -0.009518329327457158, -0.044687513898167414, -0.02289957208583701, -0.010046353800505049, 0.03279307630463977, 0.02440027165121942, -0.01517374522399162, -0.00021320710929537186, -0.003215041487814579, 0.038017735982417804, -0.030125165138339925, 0.0009553068006334867, 0.02516451676576333, 0.013811998977136284, -0.03170923669483858, 0.013235340842603919, 0.015243221883255156, 0.019286774628263042, -0.037461918983019475, -0.010532691346672307, 0.008809665540324075, -0.03685052438150037, 0.01650770080714154, 0.003915020925370347, -0.01474298900523519, -0.01380505131120993, 0.026262251707417233, 0.001678734552483041, -0.007017162609051054, -0.020203870255831754, 0.020898638711112128, 0.02221869896240934, 0.00012918352711599186, 0.0022232593828600796, -0.032820866968345186, 0.011588739361445577, -0.02162119783009792, -0.005971535627506059, 0.015312699473841201, -0.009115363772406142, 0.017424796434710253, -0.007788355389521318, 0.00302571712566019, 0.015771246356303045, -0.011130192478983732, -0.03751750403572035, -0.005665837395423993, 0.03557215012576127, -0.02112096402075544, -0.01575735102445034, -0.010115830459768584, -0.009434957336340916, -0.006878208824862728, 0.008962514190703853, -0.001825504344423201, -0.007628558607553931, 0.02189910446715206, 0.006082698747988971, -0.0005080495260560255, 0.020690206870676502, -0.009122311438332495, -0.03107004956696903, -0.022163117634998515, -0.019550787796109498, -0.030792142929914886, -0.0051690778847059485, -0.01671613078493215, 0.0073298085070594736, 0.011943071255012119, -0.010692488594300949, -0.03551656879835045, -0.017605435748795445, -0.04115808843170969, -0.02224648962611476, -0.00018726183204015998, 0.02909690685594956, 0.008893037531440318, 0.019147821309735972, -0.010185307119032119, -0.0019661950450931154, 0.0014920154486357206, 0.031181212221790686, -0.0350441275153584, -0.022357652280936415, 0.005047493730994761, -0.004189454195122568, 0.01671613078493215, 0.020051021605451975, -0.02833266174140565, 0.000542353684775053, 0.00449862626016781, -0.009566962988941633, -1.4546716460561491e-05, 0.02630393770297535, -0.02848551039178543, -0.013478510081348804, 0.0014147224323744097, -0.01810566955813792, -0.013388190424306208, -0.01828630887222311, 0.002511588450126262, -0.006301550690330363, -0.023219164718449276, 0.0011298674309020316, 0.005867320638610756, -0.004658423042135197, -0.01878654268156559, 0.00715611639323938, -0.031625864703722334, 0.008712398217355127, -0.013652202660830151, 0.016438224147878006, -0.00967812564376329, 0.0029180280709710823, -0.00930989841834404, 0.0356277314531721, -0.006311972189219893, 0.044409607261113274, -0.016771713974987997, 0.006343237151549739, 0.0059020589682425234, 0.026442891021502424, -0.04863379932020635, -0.017452587098415667, -0.009782341563981103, -0.023969514501140477, 0.03559994078946668, -0.008059315757632872, -0.007163064059165733, -0.007496552954953214, -0.017091306607600262, 0.0008632499360710178, -0.00045507339874460896, 0.0035433196341572945, 0.012540572387323543, -0.00430061731560548, -0.03618354845257043, -0.004529891222497657, -0.006311972189219893, -0.03170923669483858, 0.0018932443200357757, -0.017271945921685454, -0.00484948478643243, 0.0031420907627572395, -0.023927828505582355, 0.028513301055490842, -0.0023570024176036404, -0.011331674790847986, -0.000524550290838772, -0.004741795498912695, 0.023121897395480324, -0.0011194458155971876, 0.2759064841276806, 0.010164464121253058, -0.0035415827176757063, 0.025247888756879572, 0.01898107732750349, 0.030319699784277825, 0.04991217357594545, 0.01159568702737193, -0.01036594736443982, 0.01478467500079331, -0.02502556344723626, -0.0076077156097748705, -0.013749469983799101, -0.0010508374981591324, -0.015159849892138913, -0.01968974111463657, -0.041241460422825935, -0.013200602512972151, -0.022343756949083707, -0.018314099535928528, -0.019870380428721763, 0.007142220595725417, 0.022691142108046406, -0.01877264734971288, 0.011373361717728616, 0.003981023751670706, 0.01882822867712371, -0.006065329583173087, 0.03849017726540985, 0.01585461834741929, -0.027874113927621295, 0.010074144464210462, 0.0060861725809521474, 0.02194079046271018, -0.023205269386596568, -0.004571577218055778, 0.005877742137500286, 0.0048216936570657605, 0.02221869896240934, 0.023149688059185738, -0.00557204390541822, -0.030041793147223685, -0.000620515159277158, -0.01720246926242192, -0.008893037531440318, 0.023205269386596568, -0.012033391843377225, -0.005460880784935308, 0.0015832039131650523, 0.039212738247040656, -0.03020853712945617, 0.004234614489305121, -0.017911133049555, 0.013075544526297786, 0.01440950010944771, 0.008274693401349831, 0.01802229570437666, -0.017980609708818537, -0.029263652700827068, -0.009622544316352462, 0.02458091096530461, 0.012255717153020538, -0.007614663275701225, -0.004995385770885855, -0.01159568702737193, 0.009969928543992649, -0.013659150326756506, -0.007684140400626015, 0.013985691556617632, -0.052413340760012805, 0.008781874876618662, 0.012582258382881665, -0.01056048201037772, 0.014951418983025797, -0.031375748730373604, -0.031903771340776474, 0.027443358640187376, 0.03001400248351827, 0.01003245846865234, 0.03273749497722894, -0.00897640952255656, -0.009615596650426108, 0.012999120201107899, -0.007517395952732275, -0.01599357166594636, -0.022468814935758072, 0.005662363562460816, 0.005731840687385606, -0.010907866238017908, -0.004515995424983694, 0.019203402637146802, -0.014631826350413534, -0.0015944938702953768, -0.010282574442001069, -0.000443783412510456, 0.03198714333189272, 0.007649402070994247, 0.017091306607600262, 0.0009162260633824342, -0.0027009128122806514, -0.028457719728080012, 0.037434128319314065, -0.003230673736148875, -0.010053301466431401, -0.029180278847065803, -0.004123451368822209, 0.013151968851487675, 0.008531757971947423, 0.0024837975535902204, -0.023274746045860103, -0.005874268304537109, -0.049967754903356275, 0.009518329327457158, 0.0022145748004521377, -0.008552600969726484, 0.0022458392971207285, 0.012887956614963732, -0.01814735555369604, 0.01114408781083644, -0.010859232576533434, 0.043159023669079595, -0.029208069510771217, -0.007955099837415058, 0.036378083098508325, 0.013089439858150495, -0.011630425357003697, -0.0031195108484965905, -0.026109403057037454, 0.008594286965284605, -0.026567949008176786, -0.01720246926242192, -0.01695235328907319, 0.04474309522557824, -0.027485044635745498, -0.026331728366680768, 0.007017162609051054, 0.02060683487956026, 0.015743455692597632, -0.0010221782597976102, 0.0027009128122806514, 0.008517862640094716, -0.02923586017447663, -0.01253362472139719, -0.02353875921370656, 0.013360399760600793, -9.417370969653348e-05, 0.015535024783484515, 0.007691088066552368, 0.02704039215381385, -0.03598901008134248, -0.02929144336453248, -0.0253034700842904, -0.013853684972694406, 0.0037586979763661373, 0.041936230740751326, 0.013506300745054217, -0.016160317510823866, -0.009837922891391931, 0.002681806730983179, -0.0051899213481462645, -0.016743921448637563, -0.005311505501857452, 0.03462726383448715, -0.004950225942364557, -0.024844924133151067, 0.021023696697786493, -0.1774161037348098, 0.00572836685442243, 0.01390231863417888, -0.026957020162697607, 0.0023222638551412453, 0.0017820813159681777, -0.009997719207698062, -0.002016565855889806, -0.02074579006073235, 0.016243689501940106, 0.052830200715594015, -0.028165917759173164, -0.009518329327457158, 0.007711931064331429, 0.0024316900591425687, -0.004998859603849031, -0.021496139843423554, 0.02923586017447663, 0.026818066844170537, 0.016771713974987997, 0.036517036417035395, -0.006694095212153104, -0.02598434507036309, 0.019675845782783863, 0.006516929265369833, -0.013415981088011621, -0.019675845782783863, 0.0057665790170173745, -0.025108935438352502, -0.009045887113142607, -0.022496605599463485, 0.004658423042135197, 0.02188520913529935, 0.0009770183148609985, 0.015340490137546615, 0.014993105909906428, -0.01161653002515099, -0.0017603698599483227, -0.0075382389505113355, 0.012408566734722825, 0.007232540718429269, 0.038573549256526084, 0.00917094509981697, 0.010942604567649675, -0.004898118447916905, 0.026762485516759707, 0.032431797676469386, 0.015187640555844328, 0.007684140400626015, -0.016215898838234693, 0.00528024100518886, -0.04296448902314169, 0.035127499506474646, -0.012790689291994782, 0.01652159613899425, 0.01617421284267657, -0.007621610941627578, 0.018564215509277254, -0.018425262190750184, -0.002740861891357184, 0.00907367777684802, -0.011797170270558693, 0.00654124609611207, 0.0018654535399150478, 0.0031195108484965905, 0.002716545060614947, -0.005634572898755402, -0.020384509569916946, -0.009886556552876406, 0.021357184662251463, 0.004606315547687546, -0.030514234430215725, 0.017841656390291463, -0.018800438013418293, 0.024775447473887532, 0.017397003908359816, -0.011581791695519223, 0.011665163686635466, 0.011956966586864825, -0.008448385980831181, -0.017299736585390867, 0.022441024272052655, -0.034738426489308805, 0.016354852156761763, -0.007718878730257782, 0.03223726303053149, 0.01982869443316364, -0.011324727124921632, 0.038406805274293604, -0.0022249962993416677, -0.006277233859588126, -0.036655989735562465, -0.006899051822641789, -0.002256260796010259, -0.002695702062835886, 0.001369562487437798, -9.55306756977744e-05, 0.008281641067276186, -0.016438224147878006, -0.003567636464899532, -0.013283974504088393, -0.017744389067322515, -0.0012749003063606032, 0.01571566502889222, 0.023010734740658668, -0.001141157388032356, 0.004602841714724369, 0.022691142108046406, 0.020912534042964837, -0.0015927569538137882, -0.01618810817452928, 0.016618863461963198, 0.018091774226285214, 0.03193156200448189, -0.02406678368675445, 0.02876341889148459, -0.06858755174004436, -0.016535491470846958, -0.007427075830028424, 0.011178826140468208, -0.012505834057691775, 0.013117230521855908, -0.005294136337041568, 0.021246022007429807, 0.0030847725188648226, 0.003284518379908742, -0.07025499901294929, -9.889596593276613e-05, 0.019370146619379285, 9.512358953538068e-06, 0.00638492314710786, 0.033654590604797655, 0.00034716717128764596, 0.032959820286872256, -0.0030743507871446646, 0.004724426334096811, -0.008733241215134186, -0.019550787796109498, -0.0040852392062272645, -0.018453052854455598, 0.00161794224279682, -0.009601701318573401, 0.001999196458243295, -0.02712376414493009, 0.008726293549207833, 0.014395604777595002, -0.0162297941700874, -0.01902276332306161, 0.019286774628263042, 0.012936590276448206, -0.008059315757632872, -0.026428995689649716, -0.009441905002267268, 0.02121823134372439, -0.002028724271260925, 0.002242365464157552, 0.0066593568825213355, 0.0009162260633824342, -0.00842754298305212, 0.00016783003524664723, -0.017647121744353567, 0.013311766099116319, -0.0363225017710975, -0.016118631515265745, 0.04076901913983389, 0.00013352583287187705, 0.02203805964832415, 0.0032619384656480933, -0.017841656390291463, -0.028193708422878577, 0.008538705637873777, -0.0177165984036171, -0.001443381670735932, 0.02712376414493009, -0.012165397495977942, -0.04365925561577705, -0.017397003908359816, 0.01327702683816204, -0.00860123463121096, 0.010150568789400351, -0.001535438477090744, -0.0021537824907659165, -0.0050509675639579385, 0.017244155257980037, -0.016591072798257785, -0.01368694099046192, 0.010414581025924297, -0.026276147039269938, -0.017438691766562958, -0.013714731654167334, 0.01102597749008843, -0.00787867551222517, -0.01464572168226624, -0.00833027472876066, 0.010352051101264604, 0.01656328213455237, -0.008156583080601822, -0.02121823134372439, -0.033376680242453466, -0.013193654847045797, -0.02670690418934888, -0.018063981699934777, -0.02046788156103319, -0.0021537824907659165, 0.01118577380639456, -0.040185415202020194, -0.0026314359201864883, -0.008948618858851147, -0.026428995689649716, -0.018814333345271002, -0.0031420907627572395, 0.02309410673177491, 0.012290455482652306, -0.01853642484557184, 0.012082025504861699, -0.02779074193650505, 0.007051900938682821, 0.008823560872176783, 0.015965781002240945, -0.010484057685187832, -0.002028724271260925, 0.010720279258006362, -0.017980609708818537, -0.0013912740598729665, 0.01718857393056921, 0.008066263423559225, 0.0013304817501867455, -0.010046353800505049, -0.0845394374104326, 0.018800438013418293, 0.0020495672690399856, 0.014868046991909554, 0.006391870813034214, -0.0005249845199591691, 0.032292844357942316, -0.016827295302398827, 0.00349468597267282, 0.00915010210203791, -0.005099601225442413, -0.0020843055986717535, -0.008719345883281479, 0.013068596860371434, -0.02655405367632408, 0.0007764038791609709, 0.036378083098508325, 0.004533365055460833, 0.025247888756879572, 0.01746648243026837, 0.001264478807471073, -0.009636439648205168, -0.02549800659287332, 0.00013037765719708385, 0.004922435278659143, 0.004168611197343507, -0.03454389184337091, 0.010824494246901666, -0.009018095518114682, -0.0017647121511522937, 0.00799678583297318, -0.02078747605629047, -0.0031368800133124743, 0.018842124008976415, -0.012832375287552903, -0.021690674489361454, 0.023608235872970094, 0.001327876375464363, 0.016299270829350936, -0.009858765889170992, -0.013818946643062636, -0.027679579281683395, 0.006395344645997391, -0.00210688574576303, -0.0133742950924535, 0.02559527391584227, -0.01996764775169071, 0.01799450504067124, 0.039629598202621866, -0.018425262190750184, -0.0029579771500476155, -0.007614663275701225, -0.010671644665199377, -0.014590139423532902, 0.004540312721387187, -0.03426598520631676, 0.020759685392585058, -0.010220045448663886, 0.021329393998546047, -0.019912066424279885, 0.03357121861368141, 6.437464899779737e-05, 0.010094987461989523, -0.003991445250560236, 0.01431223278647876, -0.0007064927579464107, -0.019509101800551376, 0.015312699473841201, 0.018216832212959576, -0.046299376118371476, -0.011686007615737036, -0.012088973170788053, 8.07125633084808e-05, 0.018397471527044768, -0.0071908547228711475, 0.009254317090933212, 0.007934256839635999, 0.01040068569407159, 0.004366620607567093, 0.03298761095057767, 0.0049398044434750266, 0.020328928242506115, 0.0030135587102890714, -0.029875047302346178, 0.017313631917243576, 0.05863846805647579, -0.011755484275000573, 0.007531291284584981, -0.0078091988529616334, 0.022357652280936415, -0.01685508596610424, 0.012505834057691775, -0.0014581454608294333, -0.0407968098035393, 0.008559548635652838, 0.01685508596610424, -0.005485197615677545, -0.0022962101079174193, 0.02299683940880596, 0.016924562625367776, 0.01147757670662392, -0.007892570844077877, -0.011421995379213092, -0.015729560360744924, -0.024594806297157316, 0.022593872922432433, -0.01030341743978013, -0.018647587500393498, -0.009643387314131521, -0.011811065602411401, -0.010046353800505049, -0.00668714754622675, -0.001480725491505396, 0.021037592029639198, 0.008059315757632872, 0.002822497198822466, 0.01834189019963394, 0.0010499690399183382, -0.0504124055226429, 0.026276147039269938, -0.01366609799268286, 0.019272879296410337, -0.01795281904511312, 0.00036714176903356933, 0.021912999799004768, 0.021051487361491907, 0.009177892765743325, 0.001802924430162552, 0.026970915494550312, 0.002944081818194908, -0.0004036171024584108, 0.0005497356380294605, 0.011394204715507677, -0.020162184260273632, -0.026484577017060546, -0.0005041414639724515, -0.014590139423532902, 0.02597044973851038, 0.0045229435565713036, 0.04051890316648516, 0.017369213244654402, -0.007711931064331429, 0.03673936172667871, 0.02064852087511838, -0.013638306397654934, 0.013026910864813312, -0.021829627807888524, -0.03507191817906382, -0.024636492292715438, 0.02467818015091858, 0.0011533158034034748, -0.0013556671555850909, 0.0018411367091728103, -0.016063048325209894, 0.0020200396888529833, -0.01732752724909628, -0.009240421759080505, 0.015340490137546615, 0.0004793903167983317, 0.03301540161428308, -0.020384509569916946, 0.021148754684460855, 0.014631826350413534, -0.028124231763615042, -0.007315913175206767, 0.0016726553447974817, -0.02483102880129836, -0.02098201070222837, -0.020634625543265672, 0.0011342097221060026, -0.0031160370155334134, -0.009455800334119977, -0.01349240541320151, 0.012881008949037378, -0.009337689082049455, -0.0012992172535181545, 0.009983823875845356, 0.0162297941700874, 0.01638264282046718, -0.0015580185077667067, 0.011838856266116814, -0.026762485516759707, -0.012811532289773843, 0.023330327373270933, -0.016493805475288836, -0.004981490439033147, -0.008886089865513964, -0.03145912072148985]\n",
      "客服：嗯，卡号或身份证号能告诉我一下吗？查一下记录。\n"
     ]
    }
   ],
   "source": [
    "# 按向量搜索相似性\n",
    "embedding_vector = OpenAIEmbeddings().embed_query(query)\n",
    "print(f'embedding_vector：{embedding_vector}')\n",
    "docs = db.similarity_search_by_vector(embedding_vector)\n",
    "print(docs[0].page_content)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:42:27.323864200Z",
     "start_time": "2023-10-04T08:42:26.907156100Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "我们看一下faiss\n",
    "\n",
    "如果你的电脑显卡比较好可以pip install faiss-gpu\n"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: faiss-cpu in e:\\pycharmproject\\langchainstudyproject\\venv\\lib\\site-packages (1.7.4)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n",
      "[notice] A new release of pip available: 22.3.1 -> 23.2.1\n",
      "[notice] To update, run: python.exe -m pip install --upgrade pip\n"
     ]
    }
   ],
   "source": [
    "! pip install faiss-cpu"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:44:52.593942500Z",
     "start_time": "2023-10-04T08:44:49.507265300Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "outputs": [],
   "source": [
    "from langchain.embeddings.openai import OpenAIEmbeddings\n",
    "from langchain.vectorstores import FAISS\n",
    "db = FAISS.from_texts(list_text, OpenAIEmbeddings())"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:45:59.040904400Z",
     "start_time": "2023-10-04T08:45:55.704108500Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "客服：嗯，卡号或身份证号能告诉我一下吗？查一下记录。\n"
     ]
    }
   ],
   "source": [
    "# 相似性搜索\n",
    "query = \"客户的身份证号是多少\"\n",
    "docs = db.similarity_search(query)\n",
    "print(docs[0].page_content)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:46:25.600312100Z",
     "start_time": "2023-10-04T08:46:25.233895700Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "embedding_vector：[-0.0006290878419341604, -0.003268823907417372, 0.013221272059036733, -0.05041044498510392, -0.04165187039893983, 0.0097525993687725, -0.04042845155659308, -0.014444690901383487, -0.04204114087725249, -0.013395053123430931, 0.030418656287022977, 0.018309585461547755, -0.02709596002612599, 0.0023599483166496086, -0.0016943664255812964, 0.032420616085995044, 0.004535688481523954, -0.036480143091347964, 0.05547095002729775, -0.002130557283709592, -0.010691017675294697, 0.029056213338218912, -0.039260643846945345, 0.015112010523933324, -0.024120827756662515, 0.0011278397691573533, 0.005411545660743595, -0.005522765597835234, 0.021298620514185986, -0.04407090624257407, 0.017739582527253526, -0.017002749920152473, -0.028694748426255766, -0.02090935003587333, -0.03517331127524292, -0.0019029038658357803, 0.007764542818636465, -0.0066975265617154655, 0.025024490036570386, 0.013714810617192373, 0.01933836906473818, 0.014472496467732996, -0.0014458594150219522, 0.02495497612069661, -0.005717400836991563, 0.010857847348101517, -0.018532024404408477, -0.010579798203864338, -0.02720718042887891, 0.038370884350212235, -0.009217353392415155, -0.00424721178424443, -0.0012251572723201978, -0.010232235143753385, 0.005567948711830627, -0.023231068259929398, 0.010065405470946566, 0.016279820096226177, -0.015014693835677719, -0.030279632180565667, 0.008522229134838369, 0.001901166017938936, -0.03197573447498337, 2.813082711558942e-05, -0.018198365058794838, -0.007542102944453187, -0.0016674303652568089, 0.015848843131034376, 0.022132770740865202, 0.01205346248674388, 0.021660085426149132, 0.018698854077215294, -0.0020558312211291247, -0.020422763800627623, 0.04654554949361709, -0.026720594193633207, -0.009842965596763287, -0.01789250941688559, -0.009071376963047908, 0.011309678488055452, 0.00032540523749171745, -0.04256943546202246, -0.015515182854098176, 0.0255388818381656, 0.039761132865365804, 0.037508930419828626, -0.017628362124500606, 0.015139816090282834, -0.02314765156088087, -0.013958103734815226, 0.02641473855172396, 0.005185630090766627, 0.005251666913862873, -0.0038961739596623476, 0.008563936553040073, 0.005790388586013906, -0.002175740397704986, 0.004598250074487792, -0.005825145078289513, -0.026929130353319168, 0.006617586955444464, -0.007820152554351645, -0.018476415134354576, -0.01583494034785962, -0.008105154021498761, -0.00961357433099263, -0.012644318664477685, 0.0006655818910683121, 0.033866475733847635, -0.02542766143541268, -0.017906412200060343, 0.03628550785219163, 0.017906412200060343, -0.018267877112023493, -0.005415021356537283, 0.0022556795383147066, -0.01309614887310906, -0.0026866569691677894, -0.005922462232206398, -0.0065167941057338915, 0.002243515068698076, 0.027248888778403174, 0.015181523508484538, -0.021910329935359362, 0.029223043011025733, 0.030168411777812747, -0.0047094700115794304, -0.01504249847070467, 0.01629372287940093, 0.011650290156579026, 0.022883504268495888, -0.011580777172027813, -0.0017934217766409854, 0.014131884799209422, -0.02413472867719215, 0.012748586744320667, 0.014111031555769848, 0.019018612502299297, -0.023731557278349857, -0.03136402691645511, 0.00701380835968322, 0.032114762306730917, -0.004365383112923446, 0.024663025124607236, 0.015223230926686242, 0.003126323406674454, -0.00855003376986532, 0.010642358865505614, -0.01922714866198526, -0.034950870469737085, 0.005581851495005383, 0.011406996107633616, 0.027902304686455694, 0.0459616437761481, 0.0038058077316715606, 0.02300862745442356, 0.008466618933461909, 0.0038440396869102167, -0.01281809972887188, -0.007542102944453187, -0.031808904802176546, 0.011455654917422698, 0.0017126134792522024, -0.024523999155504808, 0.00854308237827794, 0.03781478419909275, -0.008647351389443484, -0.009981990634543155, 0.01753104450492244, 0.016363234932629585, 0.0034964773252911838, 0.014006762544604307, 0.012977978010091323, 0.003211476090974708, 0.026345226498495303, 0.011351385906257156, 0.008209423032664304, -0.01391639631661352, -0.015320548546264407, -0.02651205617130212, -0.013937250491375652, 0.017739582527253526, 0.019032513422828932, 0.029167431878326714, -0.017058359190206374, 0.02811084270878678, 0.002389491265234683, 0.0003469106686577165, 0.009432841875011056, -0.028917187369116484, 0.012074315730183452, 0.009599672479140436, 0.024037412920259106, -0.009460647441360567, -0.5832374003999753, -0.016974944353802965, -0.003227116489215667, -0.009571866912790926, 0.0030498597290277815, 0.010322601371744173, 0.015292742979914897, 0.011413947499220993, -0.03136402691645511, -0.06573098794343296, 0.009335524255432891, -0.005460204470532677, -0.01019052772555168, -0.011302728027790634, -0.020353251747398972, -0.03503428344349537, 0.012171633349761617, 0.026664983060934185, 0.0014997315356709276, 0.0007016414782282526, -0.007695030299746531, -0.006395147081261186, -0.002372113019096879, 0.04434895445548869, 0.018267877112023493, -0.004733799416473972, 0.005832096004215611, -0.023411800715910973, -0.02492717241699222, -0.002818730615360281, -0.0014084963837317182, -0.0032966287752749616, 0.0024485766967435514, -0.02040886101745287, 0.04248602248826417, -0.013395053123430931, 0.021840817882130707, 0.03361622936199229, -0.010795286686460239, 0.015473475435896472, -0.017809094580482177, -0.008786376427223352, 0.02676230068051235, -0.010280893953542466, 0.02196594106805838, 0.010169674482112107, 0.01651616368490677, -0.0016891529983060834, 0.014333471429953127, 0.03417232951311176, -0.0255388818381656, -0.007674176590645679, 0.002090587480574092, -0.009856868379938042, 0.011636387373404273, -0.004396663909405365, 0.0010044552460337633, -0.04017820891002798, 0.000484849464190568, -0.019602516357123165, -0.004445322253533167, 0.021521061319691823, 0.005182154860634218, -0.008285886477480336, 0.0053524602292347265, 0.0016092136248657225, -0.02503839095710002, 0.012651269124742502, 0.030835732331685142, 0.0034912637816006506, 0.010016746661157483, 0.029084017041923302, 0.001720433678372682, -0.021465450186992804, 0.0038231857449787243, 0.02574741799785156, 0.027513036070788158, -0.014667130775566766, 0.008077349386471812, 0.026178396825688482, -0.014833961379696146, -0.0071458820058757115, 0.0005356804965392157, 0.009662233140781714, -0.030613291526179306, 0.004563493582212184, -0.01397200651798998, -0.017350312048940865, 0.01778128901413267, 0.0003008586598177308, 0.026887423866440024, -0.005401119039023809, 0.021020570438626245, -0.011393094255781422, -0.004125565225433004, 0.024204242593065924, -0.02238301525007543, -0.034144523946762255, -0.017183482376134047, -0.006023255547578251, -0.02563619945774376, -0.00986381977152542, 0.010989921925616567, 0.02382887489792802, 0.03586843553281971, 0.01356188279623775, -0.017711776960904015, -0.014124934338944604, 0.019102027338702705, -0.03622990044478285, -0.006892161335210514, 0.005887706205592071, 0.007166735714976564, -0.015390060599493062, -0.015737622728281456, -0.020450569366977134, 0.012261999577752404, 0.036063070771976034, 0.006200512307766136, -7.510604946087993e-05, 0.01673860262776749, 0.009029669544846203, 0.03189232150122508, -0.019658125627177062, 0.027930110252805205, 0.007827103945939023, -0.009662233140781714, -0.011045531195670468, 0.026637179357229795, -0.025497173488641334, 0.010941263115827486, -0.03686941356966062, 0.037647954526285936, -0.031141586110949273, 0.004615628087794955, 0.003079402444782216, 0.027360107318510973, -0.004664286897584038, 0.001031391306358251, 0.014583715939163357, -0.01854592718758323, -0.032281591979537734, -0.0023842777215441497, -0.029028407771869404, -0.011024677952230895, -0.018031535385988017, -0.0017525831659723828, -0.0006190954493579452, -0.008313691112507285, -0.009842965596763287, -0.014263958445401913, -0.010009795269570106, 0.009898575798139747, 0.004719896633299217, -0.004733799416473972, 8.184007181795934e-05, 0.017225190725658313, -0.019741542326225592, -0.007104174587674006, -0.0016326741058118415, -0.020992766734921856, 0.024635219558257728, -0.018240071545673982, -0.0038892228009056104, -0.008904547290241089, -0.005748681167812202, 0.0255388818381656, 0.004733799416473972, -0.017767388093603034, -0.013457613785072207, -0.010830042713074566, 4.3852591479771104e-06, 0.0015179785893418333, -0.010141868915762598, -0.008292837869067713, 0.012915417348450045, -0.0297513375957957, 0.018114950222391426, -0.009599672479140436, -0.030335241450619565, 0.00402824760585484, -0.005640936926514251, -0.014250056593549719, -0.00451831046821679, 0.013339442922054471, 0.02698474148601819, -0.009196500148975583, 0.028944992935465992, -0.019115930121877463, 0.04115138138051938, -0.008209423032664304, 0.022925212618020153, -0.02106227878815051, 0.03706404880881695, 0.014486398319585193, 0.013714810617192373, 0.023953996221210576, 0.006558501523935596, -0.001482353405948444, 0.0248715612842932, 0.027401815668035238, 0.020116908158718378, 0.009919429041579319, -0.005175203469046841, 0.004813738557083693, -0.006593257550549923, -0.005814717990908448, -0.0028917188300439044, 0.0426806577274205, 0.016126893206594113, 0.0066697214610272355, -0.01197004765034047, -0.007479541817150629, -0.013221272059036733, -0.014361276064980078, 0.005317703736959119, -0.0034391295088485197, -0.0012964075226916567, 0.003990015883446823, 0.0023373567596519118, 0.00668362377854071, -0.003254921357073257, 0.034867453770688554, -0.006144902572050957, 0.007597713145829647, -0.01778128901413267, 0.007257101942967351, 0.01087870152286365, 0.015431768017694766, -0.0063082565490640875, -0.024565707505029073, -0.020130810941893132, 0.013103100264696436, 0.01320736927586198, 0.017683973257199625, 0.017405923181639887, 0.03578501883377118, -0.03945527908610168, 0.012991880793266077, 0.0006447281819674597, -0.016933237866923818, 0.012637367272890308, 0.019908371999032413, -0.031002562004491963, 0.0014953870323441366, -0.008723814834259516, 0.011594679955202568, 0.015084205888906374, 0.002552845475078453, 0.044404565588187714, -0.0016239850991582596, 0.020714716659362118, -0.006975576171613923, 0.003055073039887675, 0.018921294882721134, 0.008772473644048597, -0.0064959403966330384, 0.022146673524039956, 0.0017473697386971695, 0.02763815739407071, 0.030112802507758846, 0.022063258687636547, 0.01509810867208113, -0.004445322253533167, 0.03128061021740658, -0.0010235711072377714, -0.014569814087311162, -0.019546907087069264, 0.018059339089692407, -0.027387912884860484, 0.03358842379564278, 0.006878259017697039, -0.0038753202505614954, 0.009926380433166697, -0.0067566119932243335, -0.00161616490003778, 0.004358431721336069, -0.016641285008189326, 0.010781383903285485, -0.003996966809372921, -0.025469369784936944, -0.007284907043655581, -0.007125028296774859, 0.037203072915274256, 0.013978957909577356, -0.022146673524039956, -0.018907392099546377, 0.004768555443088299, -0.017016652703327226, 0.005018800417959808, -0.0074725904255632525, -0.002182691556461723, -0.007312711678682531, -0.009001864909819255, 0.008987962126644499, -0.007576859436728794, 0.024968878903871367, -0.018128853005566183, -0.03433915918591859, 0.016307625662575688, 0.005154349759945989, -0.016307625662575688, 0.0022695820886588216, -0.0465733550599666, 0.022007647554937525, 0.0015275365199438375, -0.0271237655924755, -0.008702961590819944, 0.016265917313051423, 0.005258618305450251, 0.0076255177808565965, -0.013881640289999192, -0.024523999155504808, 0.006475086687532186, 0.007736737717948236, 0.015403963382667817, -0.019811054379454247, -0.00791747017392981, 0.02063130182295871, -0.01561250047367634, -0.0011686783798259559, -0.0030967804580893797, -0.029056213338218912, -0.009050523719608336, 0.024065216623963496, 0.02289740705167064, 0.006482037613458284, 0.005901608523105546, 0.010461626409524041, -0.0009627477114167386, -0.03789819717285105, -0.03200354004133288, 0.011712850818220304, 0.006096243762261875, 0.0013711334688568046, -0.015056401253879423, 0.02174350026255254, 0.002085374169714199, 0.016154698772943624, 0.020506178637031035, 0.01600177002066644, 0.016363234932629585, -0.013047490994642537, -0.0137495666438067, -0.03186451593487557, -0.0008154681871651586, 0.0061935609161787595, 0.041707481531638856, -0.016335431228925196, -0.005453253078945299, 0.030946950871792944, 0.026136688476164217, 0.007708933082921286, -0.012122974539972535, -0.0072918579695816785, -0.007708933082921286, -0.012811148337284504, 0.0034721479203966427, -0.000836321896266011, 0.0042993462898272, -0.020339348964224215, 0.0007846220272804311, 0.007695030299746531, 0.02150715853651707, 0.04601725490884712, 0.013346394313641848, -0.00033518042818465703, -0.012998832184853456, 0.03230939754588725, -0.0055401440768036775, 0.007031186372990383, 0.0036111727253458716, 0.013985909301164735, -0.00882113245383768, 0.007180638032490039, 0.011511265118799158, -0.040984551707712556, -0.017127873106080146, -0.0027544316401608795, 0.013325540138879715, -0.026915227570144414, -0.016307625662575688, -0.011413947499220993, -0.024565707505029073, -0.018212267841969592, -0.02043666658380238, 0.012894563173687913, -0.013673103198990668, -0.008174666074727416, -0.011817119829385846, -0.02520522249255196, -0.022577650489231757, -0.03347720525553498, -0.0018594585997372313, 0.010816139929899812, 0.0024503145446403956, -0.0008471832127906482, -0.012289805144101914, -0.001254700104489952, 0.015960063533787292, 0.03536794651439925, 0.01933836906473818, 0.000755948119059099, 0.027401815668035238, 0.010857847348101517, -0.03367184049469131, 0.012324561170716241, -0.010044552227506994, -0.020673008309837853, 0.023870581384807167, -0.03166988069571924, -0.018921294882721134, -0.013082247021256864, 0.016335431228925196, 0.003079402444782216, -0.000850658850376677, 0.015654207891878047, -0.010482480584286174, 0.008619545823093974, -0.010809189469634994, -0.002059306916922813, 0.002347783614202338, -0.018198365058794838, 0.006398622777054874, 0.0028308953178075515, -0.030168411777812747, 0.022966920967544414, -0.007792347919324695, 0.012894563173687913, -0.0007863598169696155, -0.002196594106805838, -0.026386932985374447, -0.019713736759876085, 0.01174760777615719, 0.003371354837855429, -0.03906600860778902, 0.022674968108809923, -0.00487629968438625, 0.015570793055474636, 0.00267101657092683, -0.019380077414262446, 0.0019098551410078378, 0.0042993462898272, -0.0329211051044155, 0.024093022190313004, -0.02007520167183923, 0.02938987268383255, 0.030641097092528814, -0.010009795269570106, 0.004785933456395463, -0.009349427038607647, -0.015876648697383883, -0.0074447853248750225, 0.00605453634406017, 0.015028595687529914, -0.005769534876913054, 0.00014912597309006212, 0.007208443133178269, -0.028500113187099437, -0.011393094255781422, 0.004500932454909627, 0.020714716659362118, -0.0028204684632571254, -0.003209738243077863, -0.006676672852614612, 0.002994249527651322, 0.007055515777884924, 0.007966128983718892, 0.024065216623963496, -0.02077032592941602, -0.007701981691333909, -0.0013268192788098332, -0.0016561345867579604, 0.037203072915274256, -0.022202282794093857, 0.010294796736717222, -0.0026640654121700925, -0.007055515777884924, -0.008619545823093974, -0.01679421189782139, -0.02983475243219911, 0.0002928212879178056, 0.017809094580482177, 0.013276881329090634, 0.02339789793273622, 0.023703751712000346, 0.0205478869865553, 0.008515277743250992, -0.016363234932629585, 0.004222882379349888, -0.022786188511562843, 0.019435686684316344, -0.022925212618020153, -0.00156837513061244, 0.022007647554937525, 0.018754465209914313, -0.0004761604284331562, 0.007264053334554728, -0.012866758538660964, 0.006996429880714776, -0.013402004515018308, 0.009655281749194335, -0.004007393896753987, -0.04662896619266562, 0.014583715939163357, -0.022800089432092475, -0.02964011719304278, 0.01908812455552795, -0.040039181078280424, -0.003279250761967798, -0.00251982706353033, -0.009815160961736336, 0.0009749124138640091, -0.0066975265617154655, 0.007569908045141417, -0.025955956020182646, 0.017350312048940865, -0.021952038284883627, -0.00330010447106865, 0.009106133920984796, -0.003261872748660634, 0.008334545287269417, 0.014972986417476014, 0.020839837982644674, 0.02676230068051235, 0.028972796639170385, 0.0244405843191014, -0.01832348638207739, -0.009439793266598434, 0.0019081172931109933, -0.008911498681828467, -0.024746439961010648, -0.00441056622691884, -0.009106133920984796, 0.018045436306517653, -0.016808114680996144, -0.004469651658427708, -0.011824071220973224, -0.023078139507652216, -0.000641687006355642, -0.03303232736981354, 0.0248715612842932, -0.005609656130032332, -0.00242424729184901, 0.01005150268777181, 0.019102027338702705, 0.024398877832222252, -0.020784228712590773, 0.046740184732773415, 0.04896458533725133, -0.0004809393937341582, -0.034144523946762255, -0.049214827983816434, 0.0005196056945317053, -0.02117349919090343, 0.032031345607682386, 0.05608266131111625, -0.00624569542176153, -0.02363423965877169, 0.037425513720780096, 0.002408607126438691, -0.005693071432097021, -0.02266106532563517, 0.0017169579825789933, 0.014597618722338111, 0.03158646772196095, 0.014083225989420339, -0.01876836613044395, -0.008522229134838369, 0.022007647554937525, 0.005255142609656561, -0.02224399114361812, -0.04226358168275833, -0.028069136221907633, 0.00046399572598588564, -0.00865430278103086, -0.02523302619625635, 0.015000791052502963, 0.0063082565490640875, -0.022647162542460412, 0.009968087851368402, -0.008452716150287155, -0.006130999788876202, -0.00416379694784102, -0.011691997574780733, 0.01010711288914827, 0.0034095865602634455, -0.0029629689640000433, -0.008883694046801517, 0.015056401253879423, -0.013839932871797488, 0.024496193589155297, 0.003199311388527437, 0.039316251254354125, 0.0010896079303340173, -0.021576670589745724, 0.006572403841449071, -0.00693039305761853, 0.0064959403966330384, 0.032476227218694066, 0.00021939872767529116, -0.025191319709377203, 0.010058454079359189, -0.022869603347966252, 0.002737053394023076, -0.010065405470946566, 0.010864798739688894, 0.01087175013127627, -0.009495403467974894, -0.04465481196004306, -0.022883504268495888, -0.010086259645708699, 0.032754275431608686, 0.024398877832222252, -0.015153718873457588, -0.00021223026517187314, -0.003197573540630593, 0.038065026845657865, -0.03008499694140934, 0.0009140889598353163, 0.025135708576678184, 0.013846884263384865, -0.03169768626206875, 0.01331163828702752, 0.015251035561713193, 0.019213245878810507, -0.03748112485347912, -0.010510285219313123, 0.008786376427223352, -0.03686941356966062, 0.016474455335382505, 0.003878795713524544, -0.01479225396149444, -0.013784322670421028, 0.02633132371532055, 0.001763010020522809, -0.007041612994710169, -0.020255934127820806, 0.02088154633216894, 0.02232740598002153, 0.00014858291017421325, 0.002286960334796625, -0.032837692130657216, 0.011552972537000862, -0.02167398820932389, -0.005964170116069383, 0.015348353181291357, -0.009140889947599123, 0.017350312048940865, -0.007736737717948236, 0.00304117048954356, 0.015765428294630963, -0.011142848815248633, -0.037564537827237406, -0.005633985534926873, 0.03559038359461485, -0.021103985275029657, -0.01580713478151011, -0.01007930825412132, -0.009481500684800139, -0.006826124512114268, 0.009015767692994009, -0.0017317294568715304, -0.007639420564031351, 0.02199374477176277, 0.006103194688187972, -0.0004335840280753692, 0.02077032592941602, -0.0091478413391865, -0.03116939167729878, -0.022132770740865202, -0.01953300430389451, -0.030724511928932226, -0.005189105786560315, -0.016724699844592735, 0.007340516779370761, 0.011935290692403584, -0.010691017675294697, -0.03547916505450705, -0.017628362124500606, -0.041123575814169866, -0.022285697630497266, -0.00018409943441830497, 0.029056213338218912, 0.008869791263626763, 0.01908812455552795, -0.010141868915762598, -0.002005434796273838, 0.0014849601777937103, 0.031141586110949273, -0.03503428344349537, -0.022313503196846773, 0.005070934457881299, -0.004261114567419184, 0.016766408194117, 0.020019590539140212, -0.028361087217997006, 0.0005539274920024615, 0.004487030137396152, -0.00961357433099263, 2.7323016662689733e-07, 0.026289615365796284, -0.028527916890803827, -0.013513223986448667, 0.0014241367819726777, -0.01800372981963851, -0.013408955906605685, -0.018281779895198247, 0.0025250403743902233, -0.006221366016866989, -0.023272774746808545, 0.0011391355476562017, 0.005842523091596677, -0.004587822987106725, -0.01876836613044395, 0.007187589424077416, -0.03166988069571924, 0.008730766225846892, -0.013610541606026831, 0.016391040498979097, -0.009648331288929519, 0.0029699203555874206, -0.00931467101199332, 0.03567380029366338, -0.006332585953958628, 0.04446017672088673, -0.01679421189782139, 0.006363866750440547, 0.005918987002073989, 0.02651205617130212, -0.04860312042528818, -0.017433726885344277, -0.009870771163112796, -0.024037412920259106, 0.03559038359461485, -0.007993933618745843, -0.0071458820058757115, -0.007479541817150629, -0.017072261973381127, 0.0008206816144403717, -0.00047094697205411306, 0.003517331034392036, 0.01254700104489952, -0.004261114567419184, -0.03622990044478285, -0.004580871595519348, -0.006391671385467497, -0.03172549182841826, 0.001955038138587911, -0.017322508345236475, -0.004824165644464759, 0.003145439267878462, -0.02385668046427753, 0.028500113187099437, -0.0023599483166496086, -0.011316629879642829, -0.000508309916032857, -0.004681664910891201, 0.02311984785717648, -0.0010809189236804355, 0.2758254663390072, 0.010197479117139058, -0.003597270407832397, 0.02523302619625635, 0.01899080693594979, 0.030307437746915175, 0.04985434483398444, 0.011650290156579026, -0.010287845345129845, 0.014806155813346634, -0.02509400208979904, -0.007590761754242269, -0.013742615252219323, -0.0010279156105645624, -0.015139816090282834, -0.019685931193526574, -0.04123479807956791, -0.013186515101099847, -0.02232740598002153, -0.0184069012184808, -0.01997788405226107, 0.007159784323389187, 0.022674968108809923, -0.018823977263142968, 0.011393094255781422, 0.004010869592547676, 0.018823977263142968, -0.00611014607977535, 0.03853771402301905, 0.015876648697383883, -0.02772157223047412, 0.010065405470946566, 0.006071914357367333, 0.022021550338112282, -0.023133750640351235, -0.004563493582212184, 0.005873803888078595, 0.0048554459752853975, 0.02221618557726861, 0.02320326269357989, -0.005529716989422611, -0.030029387671355438, -0.0006742709559295539, -0.017294702778886967, -0.008869791263626763, 0.02325887196363379, -0.012046511095156502, -0.005449777848812891, 0.0016318051818634194, 0.03923283828059584, -0.030251826614216156, 0.004254163175831807, -0.017975924253288998, 0.013047490994642537, 0.014347374213127883, 0.00827198369430558, 0.017975924253288998, -0.017962021470114244, -0.029306457847429142, -0.009592721087553059, 0.024565707505029073, 0.012255048186165027, -0.007611615463343121, -0.004977092999758103, -0.011566875320175618, 0.009968087851368402, -0.013714810617192373, -0.007708933082921286, 0.01397200651798998, -0.05246801219148477, 0.008911498681828467, 0.012644318664477685, -0.01065626164868037, 0.015014693835677719, -0.03147524545656291, -0.03197573447498337, 0.027429621234384746, 0.030001582105005926, 0.009961137391103584, 0.0328098865643077, -0.008911498681828467, -0.009627477114167386, 0.013033588211467783, -0.007562956653554039, -0.015987867237491685, -0.02246643008647884, 0.005706973749610497, 0.005755632559399579, -0.01093431172424011, -0.004469651658427708, 0.01922714866198526, -0.014667130775566766, -0.001649183311585903, -0.010315650911479355, -0.00043228067125656596, 0.031920127067574584, 0.007618566854930499, 0.017058359190206374, 0.0009053998949740745, -0.0027161996849222234, -0.028458404837575172, 0.03745331928712961, -0.0032149517867683963, -0.010065405470946566, -0.029195237444676222, -0.00402824760585484, 0.01309614887310906, 0.008633448606268728, 0.00242424729184901, -0.023189359910405136, -0.005859901104903841, -0.04990995224139322, 0.009516256711414466, 0.002229612518353961, -0.008536130986690564, 0.002276533480246199, 0.01292931920030224, -0.018142753926095816, 0.011031629343818274, -0.010864798739688894, 0.04323675787853998, -0.029223043011025733, -0.007952226200544137, 0.036396730117589676, 0.013110051656283815, -0.011594679955202568, -0.0030828781405759045, -0.02610888290981471, 0.008515277743250992, -0.026567665441356022, -0.017252994429362702, -0.016919335083749064, 0.04471041936745184, -0.027568645340842055, -0.026317420932145792, 0.006926917827486122, 0.020617399039783955, 0.015737622728281456, -0.0010435560088055216, 0.0026223579939683877, 0.008522229134838369, -0.029167431878326714, -0.012505293626697816, -0.023578630388717794, 0.013283832720678011, -0.00010986228707797474, 0.015570793055474636, 0.007611615463343121, 0.026998642406547823, -0.035979654072927504, -0.02938987268383255, -0.02528863732895537, -0.013895543073173948, 0.0037015389533366586, 0.04190211677079518, 0.013408955906605685, -0.016182502476648014, -0.00986381977152542, 0.0026067175957274285, -0.005293374797725858, -0.016752505410942243, -0.0053594116208221035, 0.03461721112412344, -0.004924958494175332, -0.024829854797414057, 0.021020570438626245, -0.1775070400873528, 0.00577996196429412, 0.01391639631661352, -0.027026447972897334, 0.002408607126438691, 0.0017647478684196533, -0.009919429041579319, -0.002043666518681854, -0.02075642314624126, 0.016252016392521787, 0.05288508823614693, -0.028166451978840677, -0.009551013669351353, 0.007743689109535613, 0.0024346741463994364, -0.004990995317271578, -0.02145154740381805, 0.029223043011025733, 0.026790106246861862, 0.016780310977291754, 0.036452337524998456, -0.006718380270816318, -0.026039370856586055, 0.019685931193526574, 0.006523745497321268, -0.013485419351421717, -0.019574710790773654, 0.005786912890220218, -0.02512180579350343, -0.009015767692994009, -0.022508138436003102, 0.004671237823510135, 0.021952038284883627, 0.00102704668661614, 0.015292742979914897, 0.015028595687529914, -0.011650290156579026, -0.001763010020522809, -0.0074725904255632525, 0.012449683425321356, 0.007208443133178269, 0.03848210289032003, 0.009189548757388205, 0.01087175013127627, -0.0049979467088589555, 0.02673449511416284, 0.03244842165234455, 0.015195426291659294, 0.007674176590645679, -0.016126893206594113, 0.005348984533441037, -0.04301431707303414, 0.03520111311630219, -0.012866758538660964, 0.01654396738861116, 0.01611299042341936, -0.007549054336040565, 0.018559829970757984, -0.018420804001655557, -0.0026519007097228217, 0.009113084381249614, -0.011775412411184141, 0.006589782320417514, 0.0018785744609412392, 0.003169768672773003, 0.002714461837025379, -0.00556099778590453, -0.020394958234278115, -0.009815160961736336, 0.02131252329736074, 0.004587822987106725, -0.030557682256125405, 0.01789250941688559, -0.018782268913618703, 0.024774243664715038, 0.017461532451693785, -0.01153211836223873, 0.011636387373404273, 0.01199785228536742, -0.008452716150287155, -0.017322508345236475, 0.022535942139707492, -0.034728429664231245, 0.01634933214945483, -0.007750640501122991, 0.032253786413188226, 0.019741542326225592, -0.011386142864194043, 0.03845429732397052, -0.002224398974663428, -0.006283927144169546, -0.03664697276415478, -0.0069651495498941375, -0.0023217165942415923, -0.0025650101775257237, 0.0014684509720196488, -2.605359945713764e-05, 0.00827198369430558, -0.01640494328215385, -0.003569465307144167, -0.013304686895440144, -0.017822997363656935, -0.001216468265666616, 0.01569591624140231, 0.02298082188807405, -0.0011530380980003165, 0.004688616302478578, 0.022688870891984677, 0.02095105838539759, -0.00166395478587844, -0.016154698772943624, 0.016669090574538834, 0.018101047439216672, 0.0319479326339241, -0.02407911940713825, 0.028861578099062583, -0.06862270723913814, -0.016502260901732017, -0.00739612698074722, 0.011128946032073877, -0.012414927398707028, 0.013075295629669487, -0.0053316065201338735, 0.021215205677782574, 0.0030585487356813634, 0.003265348211623683, -0.0702354002850878, -8.84111709347096e-05, 0.019296662577859038, -6.799188742828081e-05, 0.0063847204595414, 0.03361622936199229, 0.0003636371054188835, 0.0329211051044155, -0.0031054696975736013, 0.004719896633299217, -0.008723814834259516, -0.01953300430389451, -0.004063004098130447, -0.018573732753932738, 0.0017047932801317227, -0.009634428505754763, 0.0018994282864574117, -0.02719327764570415, 0.008779425035635975, 0.014402983483181782, -0.016224210826172276, -0.019074221772353198, 0.019296662577859038, 0.012915417348450045, -0.008035641968270106, -0.026456446901248223, -0.009446744658185811, 0.021243011244132085, -0.0021131790375717887, 0.0022122342722161576, 0.006662770069439858, 0.0009201713110589516, -0.008313691112507285, 0.00013055310204232798, -0.01767007047402487, 0.013276881329090634, -0.03628550785219163, -0.016071283936540212, 0.04090113873395427, 0.00010432301332210332, 0.022091062391340937, 0.003317482717206454, -0.017850802930006442, -0.028222063111539696, 0.00860564397124178, -0.017739582527253526, -0.001487566833223657, 0.027151571158825008, -0.012199438916111126, -0.04362602463156239, -0.017405923181639887, 0.013214320667449356, -0.008640399997856105, 0.01010711288914827, -0.0015284054438922596, -0.002130557283709592, -0.005043129822854349, 0.01728079999571221, -0.016613479441839815, -0.013687005050842863, 0.010392114356295386, -0.02630351814897104, -0.017405923181639887, -0.013700907834017619, 0.011031629343818274, -0.007924421565517188, -0.014597618722338111, -0.008285886477480336, 0.01038516296470801, 0.01648835811855726, -0.008119056804673517, -0.02117349919090343, -0.03331037558272816, -0.013214320667449356, -0.02665108027775943, -0.018114950222391426, -0.02043666658380238, -0.0021896427152184607, 0.011184556233450337, -0.04020601075108724, -0.002690132664961478, -0.008897595898653712, -0.026428641334898712, -0.018823977263142968, -0.0031019940017799124, 0.02314765156088087, 0.012289805144101914, -0.018643244807161393, 0.01208126712177083, -0.027791086146347895, 0.007006856968095842, 0.00884893708886463, 0.015987867237491685, -0.01054504124592745, -0.0019845810871729854, 0.010670164431855126, -0.018087144656041918, -0.0014032829564565052, 0.0171973851593088, 0.008070397994884434, 0.0013363772094118372, -0.010086259645708699, -0.08458277449821569, 0.018851780966847358, 0.00198631893506983, 0.01493127899927431, 0.006395147081261186, -0.0005556652816916459, 0.032337199386946514, -0.016822017464170898, 0.003360927983305003, 0.009126987164424368, -0.005074410153674987, -0.0021079657267118954, -0.008675156024470432, 0.01304053960305516, -0.02651205617130212, 0.0007624649322569454, 0.036396730117589676, 0.004577396365386939, 0.02523302619625635, 0.017461532451693785, 0.0012764227375392265, -0.009690038707131223, -0.0255388818381656, 0.0001416316641059858, 0.00493190988576271, 0.004177699265354495, -0.03456159999142442, 0.010816139929899812, -0.008981010735057122, -0.0017082689759254114, 0.00797308037530627, -0.020812034278940284, -0.003141963572084773, 0.018851780966847358, -0.012776392310670176, -0.021604476156095235, 0.023675948008295956, 0.0013085722251389273, 0.016363234932629585, -0.009842965596763287, -0.013853835654972243, -0.027582548124016813, 0.006506367018352825, -0.002163575695257715, -0.013395053123430931, 0.025580588325044742, -0.019908371999032413, 0.018059339089692407, 0.039622108758908495, -0.01851812162123372, -0.003089829299332642, -0.0076811279822330564, -0.010697969066882074, -0.014611521505512867, 0.004584347291313036, -0.034227940645810785, 0.020825935199469917, -0.010232235143753385, 0.021382035350589395, -0.019880566432682902, 0.03358842379564278, 1.3155777898678675e-05, 0.010093211037296075, -0.003965686478552282, 0.014375178848154832, -0.0006703608563693141, -0.019491295954370245, 0.015306645763089653, 0.018309585461547755, -0.04637871982081027, -0.011705900357955486, -0.012095169904945585, 5.661464821876254e-06, 0.0183512919484269, -0.007180638032490039, 0.009307719620405943, 0.00794527574027932, 0.010482480584286174, 0.004323675694721742, 0.03294891067076501, 0.004900629089280791, 0.020353251747398972, 0.0029786093622410025, -0.02986255799854862, 0.017364214832115622, 0.058612915694858284, -0.011712850818220304, 0.007458688108049777, -0.007792347919324695, 0.022396918033250186, -0.01687762859686992, 0.012553952436486897, -0.0014171855068006202, -0.040845527601255247, 0.008536130986690564, 0.01687762859686992, -0.005428923674050758, -0.002191380563115305, 0.02298082188807405, 0.01690543230057431, 0.011552972537000862, -0.007903567390755055, -0.011413947499220993, -0.015709819024577066, -0.024537901938679562, 0.022688870891984677, -0.010447724557671846, -0.018643244807161393, -0.009599672479140436, -0.011803217046211092, -0.010093211037296075, -0.006704477953302842, -0.0014719265513980177, 0.02106227878815051, 0.007966128983718892, 0.0028395843244611333, 0.01837909751477641, 0.001050507167562259, -0.05041044498510392, 0.02622010331256763, -0.013638346241053782, 0.01922714866198526, -0.017934217766409855, 0.00048702174495779345, 0.02185472066530546, 0.02106227878815051, 0.0091478413391865, 0.0018003729353977228, 0.026943033136493925, 0.002928212704555076, -0.00043380125906247475, 0.0006156198117719165, 0.011358337297844533, -0.020228128561471295, -0.026498153388127367, -0.0004839805693459758, -0.014653228923714571, 0.025816931913725336, 0.004563493582212184, 0.04056747566305039, 0.017433726885344277, -0.007701981691333909, 0.0367025838968538, 0.020603496256609198, -0.013631395780788964, 0.013005783576440832, -0.021785208612076806, -0.0351177001425439, -0.024676926045136872, 0.02476034088154028, 0.0011521691740518944, -0.0013754779721835953, 0.0018507694766683293, -0.016015672803841193, 0.002047142214475543, -0.01730860556206172, -0.00925906081061686, 0.015251035561713193, 0.0004492243390048385, 0.03303232736981354, -0.020394958234278115, 0.02120130289460782, 0.014653228923714571, -0.02808303714243727, -0.007312711678682531, 0.0016370186091386324, -0.024802049231064546, -0.020964961168572348, -0.0205478869865553, 0.0011443490913467347, -0.0030672377423349453, -0.009578818304378303, -0.013436760541632635, 0.012832001580724076, -0.009335524255432891, -0.001345066332480739, 0.01005150268777181, 0.016210308042997522, 0.016530064605436406, -0.001550128076941534, 0.011803217046211092, -0.02673449511416284, -0.012797245554109748, 0.0233422868000372, -0.01648835811855726, -0.004945812203276185, -0.008904547290241089, -0.03141963804915413]\n",
      "客服：嗯，卡号或身份证号能告诉我一下吗？查一下记录。\n"
     ]
    }
   ],
   "source": [
    "# 按向量搜索相似性\n",
    "embedding_vector = OpenAIEmbeddings().embed_query(query)\n",
    "print(f'embedding_vector：{embedding_vector}')\n",
    "docs = db.similarity_search_by_vector(embedding_vector)\n",
    "print(docs[0].page_content)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:46:51.695109400Z",
     "start_time": "2023-10-04T08:46:51.204002Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "outputs": [
    {
     "data": {
      "text/plain": "[(Document(page_content='客服：嗯，卡号或身份证号能告诉我一下吗？查一下记录。', metadata={}),\n  0.23871653),\n (Document(page_content='客服：不好意思没有查到记录啊，我确认一下那个身份证号941911。', metadata={}),\n  0.29620746),\n (Document(page_content='客户：那个下了工单，我想问一下信用卡账单那个信用卡上信用卡工单情况了。', metadata={}),\n  0.34041685),\n (Document(page_content='客服：呃你说那个信用卡的一个工单，我这边给您转接信用卡坐席那边可以吗？', metadata={}),\n  0.344947)]"
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#带分数的查找\n",
    "docs_and_scores = db.similarity_search_with_score(query)\n",
    "docs_and_scores"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-10-04T08:47:39.674889100Z",
     "start_time": "2023-10-04T08:47:39.257331600Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 保存和加载\n",
    "db.save_local(\"faiss_index\")\n",
    "new_db = FAISS.load_local(\"faiss_index\", OpenAIEmbeddings())"
   ],
   "metadata": {
    "collapsed": false
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
